#include "mof_softrtc_app.h"


uint8_t mof_checkUtcSecNowWithinDayTimeInterval(uint32_t now,uint32_t start,uint32_t end)
{
	uint32_t utcsec_inday=(now%(3600*24));//(utcsec%(3600*24));
	
	if((start)>(end)) //起始时间比终止时间晚:如 20:00--8:00,21:00--19:00
	{
		if(utcsec_inday<(end)||utcsec_inday>(start)) return 1;
	}
	else if((start)<(end)) //起始时间比终止时间早:如 8:00--20:00
	{
		if(utcsec_inday<(end)&&utcsec_inday>(start)) return 2;
	}
	else //起始时间与终止时间相同,一直有效
	{
		return 3;
	}
	
	return 0;
}

void mof_getHourMinSecByUtcSec(uint8_t* timeval,uint32_t usec)
{
	timeval[0]=(usec)%60;
	timeval[1]=(usec/60)%60;
	timeval[2]=(usec/3600)%24;
}

uint32_t mof_getUtcSecByHourMinSec(uint8_t hour,uint8_t min,uint8_t sec)
{
	return ((3600*(uint32_t)hour)+(60*(uint32_t)min)+sec);
}


uint32_t mof_softrtc_app_get_utcsec(mof_softrtc_app_t * p_softrtc_app)
{
	return p_softrtc_app->rtc_utcsec;
}

void mof_softrtc_app_set_utcsec(mof_softrtc_app_t * p_softrtc_app,uint32_t utcsec)
{
	p_softrtc_app->rtc_utcsec=utcsec;
	p_softrtc_app->rtc_enable=1;
}

void mof_softrtc_app_set_utcsec_timezone(mof_softrtc_app_t * p_softrtc_app,uint32_t utcsec,int8_t timezone)
{
	if(timezone>0)
	{
		utcsec+=(3600*timezone);
	}
	else if(timezone<0)
	{
		timezone=-timezone;
		utcsec-=(3600*timezone);
	}

	p_softrtc_app->rtc_utcsec=utcsec;
}

void mof_softrtc_app_init(mof_softrtc_app_t * p_softrtc_app)
{
	p_softrtc_app->rtc_enable=0;
	p_softrtc_app->rtc_utcsec=0;
	p_softrtc_app->rtc_timenow[0]=0;
	p_softrtc_app->rtc_timenow[1]=0;
	p_softrtc_app->rtc_timenow[2]=0;
}


void mof_softrtc_app_run(mof_softrtc_app_t * p_softrtc_app,uint8_t Rtc_1s_bit)
{
	if(Rtc_1s_bit)
	{
		p_softrtc_app->rtc_utcsec++;
		mof_getHourMinSecByUtcSec(p_softrtc_app->rtc_timenow,p_softrtc_app->rtc_utcsec);
	}
}








